import pika

"""
接下来我们来尝试实现一个简单的爬取队列，即一个进程负责构造爬取请求并将请求放入队列，另一个进程从队列中取出请求并执行爬取。
所以，这里我们可以稍微对前面的代码进行改写，生产者可以自行控制向消息队列中放入请求对象的频率，消费者也根据自己的处理能力控制自己从队列中取出请求对象的频率。
如果生产者放置速度比消费者取用速度更快，那队列中就会缓存一些请求对象，反之队列则有时候会处于闲置状态。
"""



QUEUE_NAME = 'scrape'
connection = pika.BlockingConnection(
    pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue=QUEUE_NAME)

while True:
    data = input()
    channel.basic_publish(exchange='',
                          routing_key=QUEUE_NAME,
                          body=data)
    print(f'Put {data}')